package com.eleventwelve.iris.service.impl;

import java.util.ArrayList;
import java.util.List;

import org.opentides.service.impl.BaseCrudServiceImpl;
import org.opentides.util.StringUtil;

import com.eleventwelve.iris.entity.ContactNumber;
import com.eleventwelve.iris.entity.Patient;
import com.eleventwelve.iris.service.ContactNumberService;

public class ContactNumberServiceImpl extends BaseCrudServiceImpl<ContactNumber> implements ContactNumberService{

	@Override
	public void saveAll(List<ContactNumber> contactNumbers) {
		getDao().saveAllEntityModel(contactNumbers);
	}

	@Override
	public void savePatientContactNumbers(Patient patient) {

		List<ContactNumber> contactNumbers = patient.getContactNumbers();
		List<ContactNumber> toDelete = new ArrayList<ContactNumber>();
		if(contactNumbers != null && contactNumbers.size()>0){
			for (ContactNumber contactNumber : contactNumbers) {
				System.out.println(contactNumber.getNumber()+" = "+contactNumber.getIsDeleted());
				if(!contactNumber.getIsDeleted() && !StringUtil.isEmpty(contactNumber.getNumber())){
					contactNumber.setOwner(patient);
				} else {
					toDelete.add(contactNumber);
				}
			}
		}
		
		contactNumbers.removeAll(toDelete);
		for (ContactNumber contactNumber : toDelete) {
			if(contactNumber.getId()!=null){
				delete(contactNumber.getId());
			}
		}
		
		saveAll(contactNumbers);
	}
	
	

}
